'''
不同的数据存储方法：json csv xml yaml properties ini
json 是Javascript表示数据的常见方式，常用来存储数据
{} json对象
[] 多个数据
整数值 小数值 null 字符串 布尔值true false
{
    "name":"tom",
    "age":34,
    "height":178.67,
    'sex':null,
    "brother":["jack","jerry"],
    "爱好":{
        "文学":["读书","书法"],
        "体育":["篮球","乒乓球"]
    },
    "是否是学生":false
}
序列化：将字典对象--》json类型的字符串，存储到文件中，目的是为了更好的保存数据
反序列化：从文件中获取json字符串--》python的字典对象 ，目的是更好操作数据
'''
import json
def xu():
    # 序列化将字典--》json字符串 存储到文件中
    a = {"name":"tom",
        "age":34,
        "height":178.67,
        'sex':None,
        "brother":["jack","jerry"],
        "爱好":{
            "文学":["读书","书法"],
            "体育":["篮球","乒乓球"]
        },
        "是否是学生":False}
    # 字典--》json字符串
    jsonstr=json.dumps(a)
    print(jsonstr)
    # 字符串写到文件中
    with open("a.txt","w",encoding="utf-8") as f:
        f.write(jsonstr)

def fan():
    # 读取文件中的数据 获取json的字符串
    with open("a.txt","r",encoding="utf-8") as f:
        jsonstr = f.read()
    # 将json字符串--》字典
    dict1 = json.loads(jsonstr)
    # 获取对应的value数据
    print(dict1)
    # 获取身高
    print(dict1["height"])
    print(dict1["brother"][1])
    print(dict1["爱好"]["文学"][1])

fan()





